package org.example.dao;

import org.apache.ibatis.annotations.Mapper;
import org.example.domain.InoculationRecord;

import java.util.List;

@Mapper
public interface InoculationRecordDao {


    /**
     * 增加 记录
     */
    int insertInoculationRecord(InoculationRecord record);


    /**
     * 修改 记录：根据接种记录的id
     */
    int updateInoculationById(InoculationRecord record);


    /**
     * 逻辑删除：根据接种记录表的ir_id
     */
    int deleteInoculationById(Integer ir_id);


    /**
     * 逻辑删除：根据用户的user_uid
     */
    int deleteInoculationByUserId(Integer user_uid);


    /**
     * 根据用户user_uid，获得接种记录的个数
     */
    int countInoculationByUserId(Integer user_uid);



    /**
     * 根据接种记录表的ir_id，查找唯一的对象
     */
    InoculationRecord selectInoculationById(Integer ir_id);



    /**
     * 根据用户user_uid查找多个接种记录
     */
    List<InoculationRecord> selectInoculationByUserId(Integer user_uid);


    /**
     * 根据 接种日期inoculate_time，进行 模糊查询
     */
    List<InoculationRecord> selectInoculationLikeInoculate_time(String inoculate_time);


    /**
     * 根据接种次数count，查找多条接种记录
     */
    List<InoculationRecord> selectInoculationByCount(Integer count);



    /**
     * 根据接种时间升序查询 所有疫苗接种记录
     */
    List<InoculationRecord> AscSelectAllByTime();

    /**
     * 根据接种时间降序查询 所有疫苗接种记录
     */
    List<InoculationRecord> DescSelectAllByTime();


    /**
     * 查询所有疫苗接种记录
     */
    List<InoculationRecord> selectAllInoculation();

}
